package com.csx.governance.traffic.adm.model.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 注册中心信息传输实体
 * @author cuisongxu
 * @date 2023/4/24 16:30
 */
@NoArgsConstructor
@AllArgsConstructor
@Data
@Schema(description = "注册中心信息传输实体")
public class RegistryCenterInfoDTO {

    @Schema(description = "注册中心ID")
    private String id;

    @Schema(description = "注册中心地址。多个以逗号分割")
    private String addresses;

    @Schema(description = "注册中心类型")
    private Type type;

    @Schema(description = "注册中心用户名")
    private String username;

    @Schema(description = "注册中心密码")
    private String password;

    @Schema(description = "注册中心定时拉取服务的间隔(单位: s)")
    private Integer pullIntervalSeconds;

    @Schema(description = "注册中心描述")
    private String desc;

    enum Type {
        /**
         * Nacos注册中心
         */
        NACOS("nacos", "nacos注册中心"),
        /**
         * eureka注册中心
         */
        EUREKA("eureka", "eureka注册中心")
        ;
        private String name;

        private String description;

        Type(String name, String description) {
            this.name = name;
            this.description = description;
        }
    }
}
